from gtts import gTTS
import os
from hashlib import md5

CACHE_DIR = "cache/audio"
os.makedirs(CACHE_DIR, exist_ok=True)  # 创建缓存目录

def get_audio_file_path(text: str) -> str:
    # 使用文本内容的 MD5 哈希作为缓存文件名
    hash_name = md5(text.encode("utf-8")).hexdigest()
    return os.path.join(CACHE_DIR, f"{hash_name}.mp3")

def text_to_speech(text: str) -> str:
    file_path = get_audio_file_path(text)
    # 如果音频文件已存在，则不重新生成
    if not os.path.exists(file_path):
        tts = gTTS(text=text, lang="en")
        tts.save(file_path)
    return file_path